package com.javaclimb.music.datastructure;

/**
 * 选择排序
 * 规则
 * 1.选择排序是每一次从待定的数据元素中选出一个最小的元素，存放在序列的起始位置，直到待排序的数据元素排完
 * 2.如果最小的那个元素不是待排序序列中的第一个元素，将其第一个元素进行互换
 * 3.从余下的N-1个元素中，找出关键字最小的元素，重复第1，2步，直到排序结束
 *
 * 4  2  8  9  5  7  6  1  3
 */
public class ChooseSort {

    public static int[] sort(int[] arr){
        int min=0;
        int t;
        for (int i=0;i< arr.length-1;i++){
            min=i;
            for (int j=i+1;j< arr.length;j++){
                if (arr[min]>arr[j]){
                    min=j;
                }
            }
            t=arr[i];
            arr[i]=arr[min];
            arr[min]=t;
            System.out.println("第"+(i+1)+"次排序结果为：");
            display(arr);
        }
        return arr;
    }

    public static void display(int[] array){
        for (int i=0;i< array.length;i++){
            if (i==array.length-1){
                System.out.println(array[i]+" ");
            }else {
                System.out.print(array[i] + " ");
            }
        }
    }


    public static void main(String[] args) {
        int[] arr={4,2,8,9,5,7,6,1,3};
        System.out.println("排序前：");
        ChooseSort.display(arr);
        ChooseSort.sort(arr);
        System.out.println("排序后：");
        ChooseSort.display(arr);


    }
}
